package com.cn.springcloudwechat.mapper.mapper.find.askDoctor;

import com.cn.springcloudwechat.model.find.askDoctor.YmDoctor;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface YmDoctorMapper {
    int deleteByPrimaryKey(Long doctorId);

    int insert(YmDoctor record);

    int insertSelective(YmDoctor record);

    YmDoctor selectByPrimaryKey(Long doctorId);

    YmDoctor selectByUserId(@Param("userId") Long userId);

    int updateByPrimaryKeySelective(YmDoctor record);

    int updateByPrimaryKeyWithBLOBs(YmDoctor record);

    int updateByPrimaryKey(YmDoctor record);

    /**
     * 查询用户是否被配置为医生
     * @param userId
     * @return Integer
     */
    int queryByUserId(Long userId);
    /**
     * 查询平台推荐医生并按提问数倒序排序(问医生主页面展示数据)
     * @return List<YmDoctor>
     */
    List<YmDoctor> queryYmDoctorOrderByQuota();
    /**
     * 根据用户所属区域查询推荐医生并按咨询类型排序(问医生主页面展示数据)
     * @return List<YmDoctor>
     */
    List<YmDoctor> queryYmDoctorOrderByStationId(Long cityAreaId);
    /**
     * 查询所有医生并先按区域排序，再按咨询类型排序(问医生主页面展示数据)
     * @return List<YmDoctor>
     */
    List<YmDoctor> queryAllYmDoctor();
    /**
     * 问医生-快速提问-根据咨询类型和在线状态查询医生
     * @param
     * @return List<Long>
     */
    List<Long> queryYmDoctorByDouctorConsultTypeId(Long douctorConsultTypeId);

    /**
     * 问医生-查询未配置上班时间的所有医生
     * @param
     * @return
     */
    public List<YmDoctor> queryAllDoctorByWorkDate();

    /**
     * 问医生- 定时任务，每日可提问数重置
     * @param
     * @return
     */
    public Integer updateTotalQuota();
}